#ifndef NTK_VS_H
#include "ntk_vs.h"
#endif
#ifndef STDIO_H
#include <stdio.h>
#endif

#ifndef KNOPTYPE
#define KNOPTYPE
//het type van de ingedrukte knop
typedef enum {
	activatie,
	snelheidVerhogen,
	snelheidVerlagen,
	pauzeknop
} knopType;
#endif

#ifndef DATASTRUCTUREN_H
#define DATASTRUCTUREN_H

typedef enum {
	inactief,	//de auto staat aan maar cruise control staat uit
	actief,		//auto staat aan en cruise control ook
	pauze		//cruise control staat op pauze
} cruiseStatus;


struct AlleData {
	int gas,rem,koppeling, snelheid;
	knopType typeKnop;
};

//We moeten overal de pointers aan meegeven zodat het form zich kan updaten en zodat main en form gesynced zijn
struct Gegevens {
	mailBox *formData;	
	mailBox *actie;							//Dit is een regulator struct
	event *updateView;						//het form kan de informatie overnemen uit de mailbox van actie
	event *initklaar;						//hoofd stuurt terug als deze klaar is met initialiseren en al bezig is met "lopen"
	event *quit;
};

//Alle pedalen geven een int als stand
//bij de sensoren moet de oude waarde min de nieuwe waarde
//indien deze negatief is dan wordt een pedaal bekrachtigt
struct Pedalen {
	int gas, rem, koppeling; //de x bit waarmee het pedaal is ingedrukt
};

//De hoeveelheid waarmee geremd of versnelt moet worden wordt meegegeven
struct Regulators {
	int rem, gas;	//de hoeveelheid in Km/h
};

typedef struct Gegevens Gegevens;		//Noem om struct Gegevens	-> Gegevens
typedef struct Pedalen Pedalen;			//Noem om struct Pedalen	-> Pedalen
typedef struct Regulators Regulators;	//Noem om struct Regulators	-> Regulators

#endif



#ifndef INPUT_TYPE
#define INPUT_TYPE

struct Input{
	int gas,rem,koppeling,snelheid;
	knopType knop;
};
typedef struct Input Input;
#endif